#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<stddef.h>
using namespace std;

//struct S
//{
//	char ch;
//	int i;
//	double d;
//};
//
//int main()
//{
//	cout << offsetof(S, ch) << endl;
//	cout << offsetof(S, i) << endl;
//	cout << offsetof(S, d) << endl;
//
//	S s;
//	cout << (char*)&s.ch - (char*)&s << endl;
//	cout << (char*)&s.i - (char*)&s << endl;
//	cout << (char*)&s.d - (char*)&s << endl;
//
//	cout << (size_t) & (((S*)0)->ch) << endl;
//	cout << (size_t) & (((S*)0)->i) << endl;
//	cout << (size_t) & (((S*)0)->d) << endl;
//
//	return 0;
//}

//class A
//{
//public:
//	int _a1;
//private:
//	int _a2;
//};
//
//class B : private A
//{
//	void AAA()
//	{
//		_a1++;
//		//_a2++;
//	}
//private:
//	int _b;
//};

//int main()
//{
//	int c = 10;
//	auto swap = [=](int& a, int& b)mutable ->int {
//		c++;
//		int tmp = b;
//		b = a;
//		a = tmp;
//		return 10;
//	};
//
//	int a = 10;
//	int b = 20;
//	swap(a, b);
//	cout << a << endl;
//	cout << b << endl;
//}

//class A
//{
//public:
//	static int _a2;
//
//private:
//	int _a1;
//};
//int A::_a2 = 10;
//
//class B : public A
//{
//private:
//	int _b;
//};
//
//int main()
//{
//	cout << sizeof(B) << endl;
//	B b;
//
//	return 0;
//}